/* ---------------------------- 所有接口 ---------------------------------*/

// 所有控制器
const ArticleController = require('../../controllers_admin/article') // 文章
const TagController = require('../../controllers_admin/tag') // 文章标签
const MsgController = require('../../controllers_admin/msg') // 用户评论
const UserController = require('../../controllers_admin/user') // 用户
const AdminController = require('../../controllers_admin/admin') // 用户
const SystemController = require('../../controllers_admin/system') // 系统参数
const TestController = require('../../controllers_admin/test') // 文件管理

// 建立新路由 前缀 '/api/v1'

const router = require('koa-router')({
  prefix: '/api/v1/admin'
})

  // 文章
  .use('/article', require('koa-router')()
    // 获取文章条形图数据
    .get('/bar', ArticleController.getArticleBar)
    // 新增文章
    .post('/create', ArticleController.createArticle)
    // 获取文章列表
    .get('/list', ArticleController.listAdminArticle)
    // 文章草稿
    .get('/draft', ArticleController.listDraft)
    // 更新文章
    .put('/update', ArticleController.updateArticle)
    // 获取指定文章
    .get('/detail', ArticleController.getArticleDetail)
    // 删除指定文章
    .delete('/delete', ArticleController.deleteArticle)
    // 后台搜索文章
    .get('/search', ArticleController.adminSearch)
    .routes()
  )

  // 标签
  .use('/tag', require('koa-router')()
    // 获取饼图数据
    .get('/pie', TagController.getTagPie)
    // 获取所有标签
    .get('/list', TagController.listTag)
    // 搜索标签
    .get('/search', TagController.searchTag)
    // 获取指定标签详情
    .get('/detail', TagController.listTagDetail)
    // 新增标签
    .post('/create', TagController.createTag)
    // 删除标签
    .delete('/delete', TagController.deleteTag)
    // 编辑标签
    .put('/update', TagController.updateTag)
    .routes()
  )

  // 消息
  .use('/msg', require('koa-router')()
    // 留言审核
    .put('/message/update', MsgController.updateMessage)
    // 留言列表
    .get('/message/list', MsgController.listMessage)
    // 留言列表2
    // .get('/message/list2', MsgController.listMessage2)
    // 删除留言
    .delete('/message/delete', MsgController.deleteMessage)

    // 评论列表
    .get('/comment/list', MsgController.listComment)
    // 删除评论
    .delete('/comment/delete', MsgController.deleteComment)
    // 评论审核
    .put('/comment/update', MsgController.updateComment)
    // 搜索评论
    .get('/comment/search', MsgController.searchComment)
    // 加载个人消息
    .get('/reply/load', MsgController.loadPersonReply)
    // 回复列表
    .get('/reply/list', MsgController.listReply)
    // 审核回复
    .put('/reply/update', MsgController.updateReply)
    // 删除回复
    .delete('/reply/delete', MsgController.deleteReply)
    .routes()
  )

  // 用户
  .use('/user', require('koa-router')()
    // 搜索用户
    .get('/search', UserController.searchUser)
    // 获取用户列表
    .get('/list', UserController.listUser)
    // 获取指定用户详情
    .get('/info', UserController.getUserInfo)
    // 获取用户登录信息
    // .get('/loginInfo', UserController.getLoginInfo)
    // 更新用户信息
    .put('/update', UserController.updateUser)
    // 删除用户
    .delete('/delete', UserController.deteleUser)
    .routes()
  )

  // 管理员
  .use('/admin', require('koa-router')()
    // 搜索管理员
    .get('/search', AdminController.searchAdmin)
    // 获取管理员详情
    .get('/info', AdminController.getAdminInfo)
    // 获取管理员列表
    .get('/list', AdminController.listAdmin)
    // 登录
    .post('/login', AdminController.loginAdmin)
    // 编辑管理员信息
    .put('/update', AdminController.updateInfo)
    // 令牌登录
    .post('/login/token', AdminController.loginToken)
    .routes()
  )

  // 系统参数
  .use('/system', require('koa-router')()
    // 统计ip
    .get('/ip/count', SystemController.countIP)
    // 获取ip
    .get('/ip', SystemController.getIP)
    // 获取ip日志
    .get('/ip/log', SystemController.getIPLog)
    .routes()
  )

module.exports = router